#include "Pracownik.h"
#include "Przychodnia.h"
#include "Szkola.h"
#include "Samochod.h"
#include "Autobus.h"


Pracownik::Pracownik(string zawod) : nazwa(zawod) {
    if(zawod=="lekarz") {
        pracowac = new Przychodnia();
        dojezdzac = new Samochod();
    } else if (zawod=="pielegniarka") {
        pracowac = new Przychodnia();
        dojezdzac = new Autobus();
    } else if (zawod=="nauczyciel") {
        pracowac = new Szkola();
        dojezdzac = new Autobus();
    } else {
        throw "nieznany zawod";
    }
}

Pracownik::~Pracownik() {
    if(pracowac) {
        delete pracowac;
    }
    if(dojezdzac) {
        delete dojezdzac;
    }
}

ostream& operator<< (ostream& os, const Pracownik& p) {
    // wywoluje metode z interfejsu
    return os << p.nazwa << " pracuje " << p.pracowac->getGdziePracuje() 
              <<", do pracy dojezdza " << p.dojezdzac->getCzymDojezdza() 
              << endl;
}
